import 'package:flutter_test/flutter_test.dart';

import 'test/lib1.dart';
import 'test/lib2.dart' as lib2;

import 'test/hello.dart' deferred as hello;

// 仅仅倒入部分库
import 'test/hello2.dart' show hello2;

// Import all names EXCEPT foo.
import 'test/hello3.dart' hide hello3;

main() {
  test("testLib1", () {
// 使用 lib1 中的 Element。
    Element element1 = Element();

// 使用 lib2 中的 Element。
    lib2.Element element2 = lib2.Element();
  });

  test("testLib2", () async {
    await hello.loadLibrary();
    hello.printGreeting();
  });

  test("testLib3", () {
    //这样好像也不会报错，但是官方不建议这样用
    ///Dart VM difference: The Dart VM allows access to members of deferred
    ///libraries even before the call to loadLibrary(). This behavior might change,
    /// so don’t depend on the current VM behavior
    hello.printGreeting();
  });

  test("testLib4", () async {
    //未导入
//    argHello2 = 22;
    hello2();
    argHello3 = 5;
    //未导入
//    hello3();
  });
}
